package com.junzhiit.nengji.dao;

import java.util.List;

import com.bainaeco.framework.base.dao.BaseDAO;
import com.junzhiit.nengji.bo.CouponSearchBO;
import com.junzhiit.nengji.bo.CouponsDetailsBO;
import com.junzhiit.nengji.bo.UserCouponsInfoBO;
import com.junzhiit.nengji.model.Coupons;

public interface CouponsDAO extends BaseDAO<Coupons> {
	/**
	 * 
	 * TODO 获取商户全部优惠卷信息
	 * 
	 * @author FebRosy
	 * @time 2018年2月6日 上午9:16:39
	 * @return List<Coupons>
	 */
	public List<Coupons> findAll(Coupons coupons, int pageNumber, int maxPageRow);
	
	/**
	 * TODO 获取用户全部优惠卷信息(对接小程序)
	 * @author DlamLiu
	 * @time 2018年6月28日 下午7:21:45
	 * @return List<Coupons>
	 * 
	 */
	public List<UserCouponsInfoBO> findAllByUser(CouponSearchBO vo,String csId,Integer isChain,int pageNumber, int maxPageRow);
	
	/**
	 * TODO 获取用户全部优惠卷总数(对接小程序)
	 * @author DlamLiu
	 * @time 2018年7月2日 下午12:05:45
	 * @return int
	 * 
	 */
	public int getTotalCount(CouponSearchBO vo);
	
	/**
	 * TODO  获取用户可领取的优惠劵(对接小程序)
	 * @author DlamLiu
	 * @time 2018年7月2日 上午11:51:46
	 * @return List<Coupons>
	 * 
	 */
	public List<CouponsDetailsBO> findAll(String userId,String csId,String shopId,Integer isChain,int pageNumber, int maxPageRow);
	
	/**
	 * TODO 获取所有的新人可领取的优惠劵
	 * @author Qjen
	 * @time 2018年7月21日 上午10:19:54
	 * @return List<CouponsDetailsBO>
	 * 
	 */
	public List<CouponsDetailsBO> findAllNewPeopleCoupons(String userId,int pageNumber, int maxPageRow);
	
	/**
	 * TODO 获取用户可领取的优惠劵总数
	 * @author DlamLiu
	 * @time 2018年7月2日 下午12:06:33
	 * @return int
	 * 
	 */
	public int getTotalCount(String userId);
	
	/**
	 * TODO 根据店铺信息查询优惠劵，不分页
	 * @author DlamLiu
	 * @time 2018年6月25日 上午10:15:27
	 * @return List<Coupons>
	 * 
	 */
	public List<Coupons> findAllNotPaging(Coupons coupons);

	/**
	 * 
	 * TODO 获取商户优惠券全部数量
	 * 
	 * @author FebRosy
	 * @time 2018年2月6日 上午9:16:54
	 * @return int
	 */
	public int getTotalCount(Coupons coupons);
	
	/**
	 * 
	 * TODO 获取优惠券名称
	 * @author Zaki
	 * @time 2018年3月29日 下午2:32:41
	 * @return List<Coupons>
	 */
	public List<Coupons> getCouponsList(String csId,Integer isChain);
	
	/**
	 * 
	 * TODO 根据优惠券ID查询该优惠券信息
	 * @author Zaki
	 * @time 2018年3月30日 下午4:04:33
	 * @return Coupons
	 */
	public Coupons findById(String couponsId);
	
	/**
	 * 
	 * TODO 根据状态查询优惠券
	 * @author Zaki
	 * @time 2018年4月18日 下午7:28:35
	 * @return List<Coupons>
	 */
	public List<Coupons> getCoupons(Integer status);
	
	/**
	 * TODO 取得该店铺下用户可以领取的优惠劵信息
	 * @author Qjen
	 * @time 2018年7月9日 下午5:14:57
	 * @return List<CouponsDetailsBO>
	 * 
	 */
	public List<CouponsDetailsBO> getUserIdReceiveCouponsByshopId(String userId,String csId,Integer isChain);
	
	public List<Coupons> getNewPeopleCoupons();
	
	/**
	 * 
	 * TODO 查询店铺下所有优惠券(下拉框)
	 * @author Harry
	 * @time 2018年9月6日下午10:14:25
	 * @return List<Coupons>
	 */
	public List<Coupons> queryAll(Coupons coupons);
	
}
